#ifndef SCENE_H
#define SCENE_H

class SceneObject;
class ISceneObjectVisitor;
class CollisionHandler;
#include <list>
#include "stdafx.h"

class Scene
{
public:
    Scene(int width, int height);
    ~Scene();

    float width() const;
    float height() const;

    void registerObject(SceneObject *object);
    void deleteObject(SceneObject *object);

    void detectCollisions();

    void accept(ISceneObjectVisitor *visitor) const;

    void addPotion();

    unsigned int getPotionsMax();
    unsigned int getPotionsNum();

private:
    float _width;
    float _height;
    const unsigned MAX_POTIONS;
    unsigned int _potionsNumber;


    std::list<SceneObject *> _objects;
    CollisionHandler *_collisionHandler;
};

#endif // SCENE_H
